This cool program lets you completely alter the shapes file in Marathon. I wrote it because I wanted to add my own cool stuff ( add new gun pics, turn my friends into Bobs with my Quickcam, and kill the Power Rangers and Barney ) to Marathon.
Now the program is finished and I can get on with making some of my ideas happen. My hope is that by sharing this program, other people will create some great stuff for Marathon.
-This program is Freeware. You may upload it to your favorite net site or give it away to your friends ( make sure this document goes with it ), but you may not charge anything for it without my permission.
-You can E-mail what you think of it or send suggestions on how to improve it, but DON'T bother Bungie with questions about it, because they had nothing to do with it.
-I take no responsibility for any damages that may result from the use of this program. If it erases your hard drive, blows up your computer, sets your dog on fire, or causes you to loose sleep from staying up late at night making new shape files, I am NOT responsible! USE AT YOUR OWN RISK
Changes In Version 1.1 From Version 1.0
Bug Fixes
Ñ I fixed a bug in the code that generates the Low Level Shapes menu. Before this fix, it would not show the right number of low level shapes for certain animation sequences. This caused the program to crash if you choose to select a low level shape that did not exist. This problem has been fixed.
Ñ The dimentions of the current picture no longer are displayed as 0 x 0 after pasting and setting the low level shape info by the clicking method. It now displays the correct dimentions.
Ñ I have fixed a bug in the color conversion code that would cause black to be displayed a white in Marathon. I have also fixed it so it displays your newly pasted image as it will appear in marathon right after you paste it in. Before, you would sometimes have to reload the color table for this to happen.
Ñ I have rewritten the memory management code. As a result, the program is much more stable so it does not crash all of the time.
New Features
Ñ I have added support for the "Marathon Shape Shuttle." You can now save your graphics collections directly into the "Marathon Shape Shuttle" application. In addition to this, you can set the info strings in it directly when saving.
Ñ You can add new palettes and palette entries
Ñ You can add new high and low level shapes of your own. This would allow you to define a high level shape for an attacking bob for example.
Ñ You can now add new images. This is very important when you add high and low shapes because you will probably need someplace to store the pictures of your attacking bobs.
Other Stuff
Ñ Randy Reddig ( afc ydnar of AOL ) has designed a new icon for the program and has improved the appearance of the dialog boxes in MSE.
Ñ MSE now prompts you to save if you have changed something. You no longer have to worry about forgetting to save before changing shapes or quitting.
Ñ MSE now only needs about 1/2 of the memory it use to. While I have increased the recomended size of the program to 3500 K, you could probably set the actual size to 1250 K without problems.
Ñ You can now change the view count and frames per view in the high level shape dialog. You have to be very carefull if you do this, but it does give you alot more power over the animation that is displayed.
Ñ You can only change the minimum light intensity and image index in the low level shapes dialog now. The rest of the fields that use to be there can only be changed by the point and click method now.
Changes In Version 1.2 From Version 1.1
Bug Fixes
Ñ MSE will no longer corrupt the "Shapes" file when the Modern Memory Manager is turned on. This was only a problem on Power Macs.
Ñ MSE can now add new images without causing Marathon to crash when the shapes file is used.
Ñ MSE no longer locks up when you paste in a PICT that is larger than 64K.
New Features
Ñ MSE can now copy images to the clipboard.
Ñ You can now copy and paste color lookup tables with MSE.
*** IMPORTANT ***
Make a backup copy of your "shapes" file before messing with it.
***READ THIS***
There is still a problem with closing a shapes file and opening it again on some machines. If you close your shapes file, quit and relaunch MSE before opeing another one to be on the safe side. I have not been able to isolate the problem because it only occurs on my Power Mac and not on my 68k machine ( which I am developing MSE on ).
This problem will totaly destroy my shapes file on my powermac if I have saved anything. You have been warned...
-What is that thing and how do I make it do something?
Ñ The File Menu
The file menu lets you open a shapes file, save the shape or export the current graphics collection to a shape installer.
Note: You will now be reminded to save if you have not already done so. ( Unlike in version 1.0 )
The "save into installer" command will let you make save the current graphics collection into a shape installer program. You can use my original Shape Installer program or Randy Reddig's "Marathon Shape Shuttle." If you use MSS, you will be prompted fo the string stored in MSS and be given the option to delete any shapes that are already in there. You can also use my "Shapes Installer" program which is much smaller, but does not have the great looking interface that MSS has. If you use SI, then use a backup or you will need to use Res Edit to remove any unwanted shapes from it.
I would recomend using one of theese programs to back up the original version of a shape you will be working with. That way it's much easier to restore your original version of the shapes file without wasting much disk space.
Note: Any graphics collection that is resored with one of theese programs will end up at the end of the list in MSE when you go to edit it.
ÑThe Edit Menu
-The paste command: This will paste the image on the clipboard into the image you have selected. If there is a 'clut' resource on the clipboard, that will be pasted into the current palette. When both types are present, you are asked which one ( or both ) you want to paste.
-The copy command: You are asked if you want to copy the image, the color lookup table, or both to the clipboard. When you make your choice, MSE copys the item/s you choose.
Note: Pasted cluts are still subject to the "Bungie Approved" color limitation mentioned in the "Palette Control" section.
ÑThe Add Menu
This menu lets you add new Palettes, High Level Shapes, Low level Shapes, and Images to the current graphics collection. Theese commands are only available for sprites.
ÑThe Shape Pop-up Menu
This lets you choose the graphics collection that you want to work on withing a shapes file. The number is a number chosen by the Resource Manager for that graphics collection resource.
ÑThe Palette Pop-up Menu
This lets you choose which palette you want it to draw the current image with. This palette is also displayed in the palette control. In addition to this, any picture that you paste in is matched to the currently selected palette.
ÑThe Palette Control
This lets you choose new colors for a palette. Be aware that if you change a color to one that is not a "Bungie Approved" color, then Marathon probably will not work in the 256 color setting. Non-Bungie Approved colors always seem to work when the display is set to greater than 256 colors( as in Thousands of Colors. ) A "Bungie Approved" color is one that has the same RGB value as any other color you may find in the default palettes.
You can now add new palette entries by clicking anywhere in the palette control that does not already have an entry. You will then be prompted for the number of new entries to add.
Important: The last color entry of every palette must be pure black ( Red = 0, Green = 0, Blue = 0 )
ÑThe High Level Shape Pop-up Menu
This lets you select which animation sequence (from the current graphics collection) that you would like to work with.
If you are working with a Physics Editor, the high level shapes are the ones that you specify there. The first shape is 0, then 1, 2 ... n.
ÑThe Low Level Shape Pop-up Menu
A low level shape describes a single frame of an animation sequence. The ones in this menu are the frames from the current high level shape.
ÑThe Image Pop-up Menu
This is a list of all of the images stored in the current graphics collection. They are not the same thing as a low level shape because a single image can be shared by many low level shapes.
ÑThe Two Buttons Below the Palette Control
These let you directly edit the values stored in the high and low level shapes. More on these later...
ÑThe Cross That Appears When the Mouse Cursor is Over an Image
This lets you set the origin, scale factor and image index of the current Low Level Shape.
It's image index is set to the current image of course.
The origin is set to where you click. This should be where the image should touch the floor in most cases ( projectiles are usualy set to the middle of the projectile. ) Phor example, if you were to set the origin of the figheter, you would click right between it's feet.
The scale factor should be set to the same value for all low level shapes in a high level shape.
What value should be used for the scale factor?
-If your picture is drawn to the same scale as the original picture, use the same value for the scale factor.
-If you picture is double the scale of the original image, double the scale factor.
-If you want the something to be smaller, decrease the scale factor. If you want it larger, increase the scale factor.
Note: If you don't want your pasted images to be all distorted and mutated looking, make sure you do this for every low level shape that uses a picture that is different than it's original.
Inside Pasting a Picture
-Textures are easy just choose the image and select paste from the edit menu. These are scaled to whatever the size of the original texture was.
-Pasting an interface item is the same as above.
-Now the tricky part is pasting in a sprite. You have to be careful about what colors you choose for your new picture because they are matched to colors of the current palette.
Any color that matches the first color in the palette will become transparent. The default for this is always pure blue, but you can change this with the palette control.
As of writing this, I am working on an "Almost-A-Power Ranger graphics collection. ( OK, it's not a real power ranger, but it looks close enough ) There should be a sample picture from this set provided with this program. This is used to illustrate how to create a sprite that changes to the right color when you use the palette control and is transparent in the right places.
-To install the Almost-A-Power Ranger
1 Copy my picture
2 Open your shapes file, select graphics collection 7 from the Shape Pop-up.
3 Select palette 3 from the Palette Pop-up
4 Choose an image to paste into
5 Paste it in
That's it... Now you will find that he changes to the right colors when you change to another palette.
You say you want better color quality?
Quickdraw tries to match the colors in your picture to the colors in the current palette. There may not be certain colors that you need. You can always add more color entries and change the colors that are already there first. Then, when you paste it will use any of your changed/new colors during the match.
If you copy a direct pixel image ( greather than 8 bit ), your images will be dithered when you paste it in. If its and indexed ( 8 bit or less ), no dithering will occur. Try both to see which produces the best results.
You copy and paste in a clut. If you don't want the colors of the current images changed ( and probably messed up ), add a new palette and paste the clut into the new palette.
Inside High Level Shapes
You can change most of the info in a high level shape
1 Select a high level shape for editing.
2 Click on the Edit High Shape button
3 Change the values
4 cancel or accept the changes
What are Those High Level Shape Fields Anyway?
-Name: Well, Uh... it's the name of the high level High Level Shape?
-View Count: This is the number of directions that an HLS sequence can be viewed from. A value of '1' means that it looks the same from all sides. A value of 8 means that there are 8 sides to the image. 5 is almost the same as 8 ( it still has 8 sides ), but it only uses 5 images to define it. The extra 3 sides are just mirror images of the opposite sides. You will find other values in Bungie sprites too. You may see a value of 4 which can be viewed from 4 sides and 9 which can be viewed from five sides ( Front, and the 4 oblique views ). Try to only use values that you see are already being used. Other values may do strange things ( like crash Marathon ).
-Frames per View: This is the number of Low Level Shapes ( frames ) that can be seen from each view.
-Ticks Per Frame: A "tick" in Marathon is 1/30th of a second. This is the delay between frames.
-Key Frame: This is the frame where an event occurs. An example of this is when a fighter attacks, his blow does not land until he reaches the key frame.
-Transfer Mode: I have identified the values for the transfer modes. There should be a transfer mode reference document provided with MSE. Try to only use the values in it.
-Transfer Mode Period: This is the length ( in ticks ) of the entire animation sequence. It is always equal to Frames Per View * Ticks Per Frame. As of yet, I have not tried changing it to anything else. I don't know for sure what would happen if I did.
-First Frame Sound: This is the res ID of the sound to play at the beginning of the animation. A value of -1 means no sound.
-Key Frame Sound: A sound made when the animation reaches the key frame
-Last Frame Sound: The sound made at the end of the animation.
-Scale Factor: I don't think this value is used in the Marathon. It is only useful for a shape editor like this one. MSE lets you set the scale factor for each low level shape anyway, so it does not matter much anyway.
Note: If you play with either the view count and/or the frames per view fields, make sure you add enough low level shapes to deal with the new values. The quantity of low level shapes should be equal to the (real number of sides a sprite can be viewed from) * (the number of frames per view).
Say there are 16 low level shapes in a high level shape ( index from 0 - 15 ) and it has a View Count of 4 and Frames per view of 4. Bob wants it to be viewed from 8 sides with 6 frames of animation per view. He changes the View Count to 5 and the Frames per View to 6. There should now be a total of ( 8 ) * ( 6 ) = 48 low level shapes. This means that bob must add ( 48 - 16 ) = 32 low level shapes to the current image for there to be a total of 48 low level shapes ( index from 0 - 47 ). If Bob should change thoose values without adding the new low level shapes, Marathon will probably crash. ( That could be very bad for Bob )
Inside Low Level Shapes
Each low level shape describes a single frame of animation.
What Do Those Low Level Shape Fields Do?
The current origin of the shape is displayed ate the top. This is the same "origin" that is set by clicking on an image. It is listed here for reference only. You might find it usefull to see where some of Bungie's origins are.
There are only three fields that are worth setting with the Edit Low Dialog Box.
-The X Mirror Flag: This tells marathon to draw this frame reflected across the y axis.
This is useful for lots and lots of things... Just take a look for your self.
-Minimum Light Intensity: This allows you to make sure a frame is never darker than a certain level. A good example of this is the when someone/something fires from a dark place and becomes brighter during the shot.
-Image Index: This is the image index that this frame is linked to. You can have multiple low level shapes linked to the same image.
-The Y Mirror Flag: I would guess that this does the same thing as the X Mirror Flag, but across the opposite axis.
-The Key Obscure Flag: I have no idea...
There are still more fields, but they are not listed. They must be set through the point and click method for each low level shape that you have changed the image for. See the "The Cross That Appears When the Mouse Cursor is Over an Image" info for more info.
The Most Commonly Asked Question
Q: Why are the pictures that I pasted in all distorted and funny looking when I run Marathon? Is there some way to change the size of the rectange they are drawn in?
A: This is because marathon draws your images based on the info stored in each low level shape. If you don't want your image to be smashed into the rectangle of the original image, you have to set the info correctly for EVERY ( and I mean that ) low level shape. I know it's a pain when there are a few hundred of those things to set, but if you want your cool new stuff to look right, you have to do it!
OK, now you will probably want to know how to set this info for the low level shape, because it is not available in the low level shape dialog, right? First select a low level shape to set from the low level shape menu, then move the crosshairs to a common reference point on the image, this point is refered to as the origin of the low level shape. Just what is a common reference point( origin ) ? This should be a point that is common to all images in an animated sequence. For example, you may want to use the point right between someones feet as the origin. It's probably also worth mentioning that the origin is where an object touches the ground ( if it's not flying/floating ), so if you were to change Bob's origin to his chest, he would appear to be burried up to his chest in the floor when you played marathon.
Now that you are pointing to where you want the origin to be placed, click the mouse button and you will be presented with a dialog box that tells the coordinates of the origin you have selected and asks for something called a scale factor. The scale factor controls how big a frame of animation will be. For example, the default scale factor for Bob is 8 and if you were to change it to 16, Bob would appear twice as large when you played Marathon. You can use this to create very huge or very small monsters. If the images you add appear to be too small in marathon after pasting them in and using the default scale factor, try increasing the scale factor. If the images are too big, decrease the scale factor until you find a value that looks right. ( By the way, you can set the default value for the scale factor of a high level shape in the high level shape dialog. ) The combination of the origin you selected, the current image's dimentions and the scale factor you have choosen are used to calculate the rect of the animation frame (low level image ). Doing this fills in 11 of the 12 numerical fields of the current low level shape. Once again, make sure you do this for every low level shape that uses an image you have altered.
Now What?
That's about all... If you have any questions, E-mail me. Hopefully all the bugs are dead this time and we will see some new shapes posted.